package com.oceansoft.mobile.econsole.modules.weixin.service;

import com.oceansoft.mobile.econsole.modules.base.entity.Result;
import com.oceansoft.mobile.econsole.modules.weixin.entity.TcAdvice;
import com.oceansoft.mobile.econsole.modules.weixin.entity.TcDriverInfo;
import com.oceansoft.mobile.econsole.modules.weixin.entity.WxMember;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * 微信用户服务接口
 * @author jin.xu
 * @createTime 2015年4月9日 上午11:03:14
 * @packagePath com.oceansoft.mobile.econsole.modules.weixin.service.IWxMemberService.java
 */
public interface IWxMemberService {
	
    /**
     * 保存线路信息
     *
     * @param line 线路信息
     * @return Result
     */
    Result saveWxMember(WxMember wxMember);

    
    Result loadWxMemberById(Integer id);
    
    
    List<WxMember> loadWxMemberByOpenId(String openid);
    
    /**
     * 根据openid获取车辆及驾驶证信息
     * @param openId
     * @return
     */
    List<TcDriverInfo> loadDriverByOpenId(String openid);
    
    /**
	 * 加载个人车辆绑定信息
	 * @param openId
	 * @return Result
	 * 
	 */
    List<TcDriverInfo> loadCarByOpenId(String openid);
	
	 /**
	   * 加载个人驾驶证绑定信息
	   * @param openId
	   * @return Result
	   * 
	   */
    List<TcDriverInfo> loadDcnByOpenId(String openid);
	
	 /**
     * 建议意见
     * @param TcAdvice 
     * @return Result
     */
    Result submit(TcAdvice advice);
    
    /**
     * 查询用户昵称
     * @param openId
     * @return WxMember
     */
    WxMember findByOpenId(String openid);
    
    /**
     * 个人信息与微信号绑定
     * @param url 数据接口
     * @return Result
     */
    Result binInfo(String cardId, String mobile, String smsCode, HttpSession session);
    
    /**
     * 发送短信验证码
     * @param mobile	手机号
     * @return
     */
    Result sendMsgcode(String mobile, HttpSession session);
    
	/**
     * 绑定车辆信息
     * @param driverInfo 
     * @return Result
     
	Result bindTcDriverInfo(TcDriverInfo driverInfo );
	*/
	
	/**
	 * 绑定驾驶证信息
	 *@param driverInfo 
	 *@return Result
	 
	Result bindDcnInfo(TcDriverInfo driverInfo);
	*/
    
    Result bindDriveInfo(String cardId, String openid);
    
    /**
     * 取消绑定
     * @param openid
     */
    Result delWxMemberById(String openid);
    
    /**
     * 根据openid删除记录
     * @param openId
     * @return
     */
    Result delWxMemberByOpenId(String openId);
    
    /**
     * 根据openID删除驾车信息
     * @param openID
     * @return
     */
    Result delWxDriverInfo(String openID);
    
}
